﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
namespace hissql
{
    public partial class PatPI : Form
    {
        public PatPI()
        {
            InitializeComponent();
        }

        private void PatPI_Load(object sender, EventArgs e)
        {

        }

        private void bt_save_Click(object sender, EventArgs e)
        {
           SqlConnection sqlConnection = new SqlConnection();                                          //声明并实例化SQL连接；
            sqlConnection.ConnectionString =
                //"Server=(local);Database=hissql;Integrated Security=sspi"; 
                "Server=SERVER-50;Integrated Security=False;database=hissql;uid=jsj;pwd=2wsx@WSX";                        //在字符串变量中，描述连接字符串所需的服务器地址、数据库名称、集成安全性（即是否使用Windows验证）；
            SqlCommand updateCommand = new SqlCommand();                                                    //声明并实例化SQL命令；该命令用于更新记录；
            updateCommand.Connection = sqlConnection; 

            updateCommand.CommandText =
                               "UPDATE tb_Patient (Type,BirthDate,ID,CertificateNo,MedicalRecordNo) VALUES(@Type,@BirthDate,@ID,@CertificateNo,@MedicalRecordNo) WHERE tb_Patient.No="+tb_no.Text.Trim();
                                      //向SQL命令的参数集合添加参数的名称、SQL Server数据类型、长度（仅用于定长类型）、所绑定的数据表中的列名；
            updateCommand.Parameters.Add("@Type", SqlDbType.VarChar, 0, "Type");
            updateCommand.Parameters.Add("@BirthDate", SqlDbType.VarChar, 0, "BirthDate");
            updateCommand.Parameters.Add("@ID", SqlDbType.VarChar, 0, "ID");
            updateCommand.Parameters.Add("@CertificateNo", SqlDbType.VarChar, 0, "CertificateNo");
            updateCommand.Parameters.Add("@MedicalRecordNo", SqlDbType.VarChar, 0, "MedicalRecordNo");
            SqlDataAdapter sqlDataAdapter = new SqlDataAdapter(); 
            sqlDataAdapter.UpdateCommand = updateCommand;

            sqlConnection.Open();  
            

           /* SqlConnection sqlConnection = new SqlConnection();                                              //声明并实例化SQL连接；
            sqlConnection.ConnectionString =
                "Server=(local);Database=hissql;Integrated Security=sspi";                             //在字符串变量中，描述连接字符串所需的服务器地址、数据库名称、集成安全性（即是否使用Windows验证）；
            SqlCommand insertCommand = new SqlCommand();                                                    //声明并实例化SQL命令；该命令用于插入记录；
            insertCommand.Connection = sqlConnection;                                                       //将SQL命令的连接属性指向SQL连接；
            insertCommand.CommandText =                                                                     //指定SQL命令的命令文本；
                "INSERT tb_Patient"
                + "(Type,BirthDate,ID,CertificateNo,MedicalRecordNo)"
                + " VALUES(@Type,@BirthDate,@ID,@CertificateNo,@MedicalRecordNo);";

            insertCommand.Parameters.Add("@Type", SqlDbType.VarChar, 0, "Type");
            insertCommand.Parameters.Add("@BirthDate", SqlDbType.VarChar, 0, "BirthDate");
           
            insertCommand.Parameters.Add("@ID", SqlDbType.VarChar, 0, "ID");
            insertCommand.Parameters.Add("@CertificateNo", SqlDbType.VarChar, 0, "CertificateNo");
            insertCommand.Parameters.Add("@MedicalRecordNo", SqlDbType.VarChar, 0, "MedicalRecordNo");

            SqlCommand updateCommand = new SqlCommand();                                                    //声明并实例化SQL命令；该命令用于更新记录；
            updateCommand.Connection = sqlConnection;                                                       //将SQL命令的连接属性指向SQL连接；
            updateCommand.CommandText =                                                                     //指定SQL命令的命令文本；
                "UPDATE tb_Patient"
                + " SET Type=@Type,BirthDate=@BirthDate,ID=@ID,CertificateNo=@CertificateNo,MedicalRecordNo=MedicalRecordNo"
                + " WHERE No=this.tb_no.Text.Trim();";
                                      //向SQL命令的参数集合添加参数的名称、SQL Server数据类型、长度（仅用于定长类型）、所绑定的数据表中的列名；

            updateCommand.Parameters.Add("@Type", SqlDbType.VarChar, 0, "Type");
            updateCommand.Parameters.Add("@BirthDate", SqlDbType.VarChar, 0, "BirthDate");
           
            updateCommand.Parameters.Add("@ID", SqlDbType.VarChar, 0, "ID");
            updateCommand.Parameters.Add("@CertificateNo", SqlDbType.VarChar, 0, "CertificateNo");
            updateCommand.Parameters.Add("@MedicalRecordNo", SqlDbType.VarChar, 0, "MedicalRecordNo");
            updateCommand.Parameters.Add("@OldNo", SqlDbType.Char, 10, "No");                               //若学号发生更改，则还需提供旧学号，以便查询要更改的行；
                             //旧学号的来源版本，为数据行版本中的原始值；
            
            SqlDataAdapter sqlDataAdapter = new SqlDataAdapter();                                           //声明并实例化SQL数据适配器；
            sqlDataAdapter.InsertCommand = insertCommand;                                                   //将SQL数据适配器的属性InsertCommand指向用于插入记录的SQL命令；
            sqlDataAdapter.UpdateCommand = updateCommand;                                                  //将SQL数据适配器的属性DeleteCommand指向用于删除记录的SQL命令；
                                       //声明数据表，并指向数据网格视图的数据源；数据源默认类型为object，还需强制转换类型；
            sqlConnection.Open();                                                                           //打开SQL连接；
                                               //SQL数据适配器根据学生数据表提交所有更新，并返回受影响行数；
                                                                                    //关闭SQL连接；
                      */         




        }
    }
}
